Where the Truth Lies: AOP and Its Impact on Software Modularity

نویسنده

  • Adam Przybylek
چکیده

Modularity is the single attribute of software that allows a program to be intellectually manageable [29]. The recipe for modularizing is to define a narrow interface, hide an implementation detail, keep low coupling and high cohesion. Over a decade ago, aspect-oriented programming (AOP) was proposed in the literature to “modularize the un-modularizable” [24]. Since then, aspect-oriented languages have been providing new abstraction and composition mechanisms to deal with concerns that could not be modularized because of the limited abstractions of the underlying programming language. This paper is a continuation of our earlier work [32] and further investigates AO software with regard to coupling and cohesion. We compare two versions (Java and AspectJ) of ten applications to review AOP within the context of software modularity. It turns out that the claim that “the software built in AOP is more modular than the software built in OOP” is a myth.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Empirical Assessment of the Impact of Aspect-oriented Programming on Software Modularity

The term “crosscutting concern” describes a piece of system that cannot be cleanly modularized because of the limited abstractions offered by the traditional programming paradigms. Symptoms of implementing crosscutting concerns in the languages like C, C# or Java are “code scattering” and “code tangling” that both degrade software modularity. Aspect-oriented programming (AOP) was proposed as a ...

متن کامل

Using AOP to Improve Design Patterns Modularity

The way Design Patterns (DP) are implemented may affect the modularity of a software system, due to some typical deficiencies of Object Oriented (OO) languages. Aspect Oriented Programming (AOP) provide patterns’ developers with powerful quantification constructs to better handle modularity and composition and to overcome some of the OO design trade-offs in current DP implementations. In this p...

متن کامل

A systematic review of comparative evidence of aspect-oriented programming

Context: Aspect-oriented programming (AOP) promises to improve many facets of software quality by providing better modularization and separation of concerns, which may have system wide affect. There have been numerous claims in favor and against AOP compared with traditional programming languages such as Objective Oriented and Structured Programming Languages. However, there has been no attempt...

متن کامل

Evidence-Based Comparison of Modularity Support Between Java and Object Teams

Background: Aspect-oriented programming (AOP) is an emerging programming paradigm whose focus is about improving modularity, with an emphasis on the modularization of crosscutting concerns. Objective: The goal of this paper is to assess the extent to which an AOP language – ObjectTeams/Java (OT/J) – improves the modularity of a software system. This improvement has been claimed but, to the best...

متن کامل

A cohesion measure for C in the context of an AOP paradigm

Cohesion measures the relative functional strength of a module and impacts the internal attribute of a function such as modularity. Modularity has become an accepted approach in every engineering discipline. The concept of modular design has considerably reduced the complexity of software design. It represents the strength of bond between the internal elements of the modules. To achieve effecti...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011